// 目标：多个专业的借口比单个胖接口好用

// 需求
// 实现中台快速迭代游戏
class Game {
    constructor(name) {
        this.name = name
    }
    run() {
        // 跑
    }
    shot() {
        // 开枪
    }
    mega() {
        // 开大
    }
}

class R extends Game {
    constructor() {
        // R 游戏
    }
}

class L extends Game {
    constructor() {
        // L 游戏
    }
}

r = new R('r')
r.run()
r.shot()
r.mega()

// 重构 - 拆分细化多个专业的借口，每个接口服务于单个功能模块
class Game {
    constructor(name) {
        this.name = name;
    }
    run() {
        // 跑
    }
}

class MOBA extends Game {
    constructor() {}
    mega() {}
}

class FPS {
    constructor() {}
    shot() {}
}

class LOL extends MOBA {}